home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / c / vbccm68ksrc.lha / vbcc / vlink / history < prev    next >
Text File  |  1999-03-07  |  11KB  |  221 lines

  1. vlink history
  2. =============
  3.  
  4. (ados/ehf): changes are relevant for AmigaDOS/EHF only
  5. (elf):      general ELF changes
  6. (elf32ppc): changes are relevant for ELF32-PowerPC only
  7.  
  8. - 0.6d (13.02.99)
  9. o (elf) The PowerUp ELF loader has its own constructor/destructor
  10.   functionality for .ctors and .dtors sections, so we have to
  11.   rename them to .ctor_/.dtor_ (elf32powerup executable only). The
  12.   contents can still be referenced by .ctors/.dtors, though.
  13.  
  14.  
  15. - 0.6c (05.02.99)
  16. o (elf) Elf32 supports vbcc's _INIT/_EXIT function, where constructor/
  17.   destructor function pointers will be placed into the .ctors and .dtors
  18.   sections. .ctors/.dtors are using the standard format, but compiler-
  19.   generated entries will not work - the linker has to create these sections.
  20.   If .ctors or .dtors is referenced, but no such section exists, the
  21.   linker will create an artificial absolute symbol with the value 0
  22.   instead.
  23. o All targets use the standard format for constructor/destructor
  24.   sections, which means: first longword describes the number of pointers
  25.   or is -1 (vlink uses the latter one), when the init code has to deter-
  26.   mine the number itself. The last longword will always be a NULL pointer.
  27.  
  28. - 0.6b (16.01.99)
  29. o Changed copyright.
  30. o Compiles now under Irix 5.3.
  31.  
  32. - 0.6a (19.12.98)
  33. o vlink should be prepared to support little-endian objects now. The
  34.   endianess of the whole linking procedure is determined when loading
  35.   the first object file. Consequently the following ones must use the same.
  36. o Fixed some problems with constructor/destructor-type linker symbols in
  37.   small data mode. Although they were addressed base-relative, their
  38.   sections could not be coalesced with the small data section and their
  39.   offsets were never updated.
  40.  
  41. - 0.6  (24.10.98)
  42. o The section offset for base-relative relocations was made target-
  43.   dependant. Consequently, -baseoff modifies the default setting for
  44.   the current output file format.
  45.   The following default offsets were defined:
  46.   amigaos/amigaehf: 0x7ffe, elf32ppcbe/elf32powerup: 0x7ff0.
  47. o New target elf32powerup, which supports the PPC coprocessor boards
  48.   from Phase5. The format of elf32powerup executables is the same as
  49.   the format of elf32ppcbe relocatable objects, but no unknown symbols
  50.   are allowed and base relative relocations will be resolved.
  51. o (elf): Linking with shared objects is supported, but they still cannot
  52.   be created by vlink.
  53. o (elf): .sdata/.sbss and .sdata2/.sbss2 (EABI) will always be combined,
  54.   also in -multibase mode.
  55. o (elf32ppc): _LinkerDB is no longer known to elf32ppcbe. It's an
  56.   elf32powerup-only symbol now.
  57. o (elf32ppc): Linker symbols _SDA_BASE_ and _SDA2_BASE (EABI).
  58.  
  59. - 0.5f (08.10.98)
  60. o (ados/ehf): The automatic constructor/destructor functions have to
  61.   begin with __INIT or __EXIT to avoid conflicts with ANSI-C identifiers.
  62.  
  63. - 0.5e (05.10.98)
  64. o A target may create prioritized pointers or constants in a new
  65.   section. This feature is useful for buidling constructor/destructor
  66.   function pointer tables. Currently used by ados/ehf only.
  67. o (ados/ehf): Global symbols beginning with _INIT or _EXIT will create an
  68.   entry into the constructor/destructor function pointer table.
  69.   These tables can be addressed by using the symbols __ctors and __dtors
  70.   (e.g. in the startup/cleanup code of a program).
  71.   The priority of these functions may be defined by specifying a number
  72.   behind the INIT/EXIT string. Example: _INIT_9_OpenLibs.
  73.   Otherwise their priority defaults to 0 and they will be positioned
  74.   in order of occurence.
  75.  
  76. - 0.5d (22.08.98)
  77. o Faster memory allocation algorithm, using 256k chunks. Can be
  78.   activated by defining FASTALLOC.
  79. o Directories are only scanned for shared objects, because of a possible
  80.   version extension. This is a great improvement under AmigaOS, because
  81.   the file system is not fast enough.
  82. o When using the -dn option together with the previous two enhancements,
  83.   vlink is nearly 10(!) times faster than before, under AmigaOS.
  84.  
  85. - 0.5c (08.07.98)
  86. o (ados/ehf): If the target is EHF and an undefined reference to a
  87.   symbol beginning with "@_" was detected, it will be automagically
  88.   generated by the linker, as long as a symbol without "@_" already
  89.   exists. The linker will create an artificial object unit with the
  90.   name of the referenced symbol (without "@_"), including a data section
  91.   called ".tocd", which reserves four bytes for the symbol pointer.
  92.   This nice feature allows the generation of @__name pointer symbols
  93.   in the TOC section on demand, which saves a lot of space.
  94.  
  95. - 0.5b (05.07.98)
  96. o (elf32ppc): Implemented linker symbol _LinkerDB.
  97.  
  98. - 0.5a (28.06.98)
  99. o Error 19 (symbol xxx (yyy) is already defined in...) was turned
  100.   into a warning.
  101. o Option -w (suppress warnings) was missing in help text.
  102.  
  103. - 0.5  (27.06.98)
  104. o Target specific linker symbol support. This feature is currently
  105.   only used by the AmigaDOS file format.
  106. o (ados/ehf): Implemented linker symbols:
  107.   _DATA_BAS_, _DATA_LEN_, _BSS_LEN_, _LinkerDB, __BSSBAS, __BSSLEN,
  108.   __ctors, __dtors, __DATA_BAS, __DATA_LEN, __BSS_LEN, __RESIDENT.
  109. o -v shows the default target.
  110.  
  111. - 0.4  (05.06.98)
  112. o New linking rules. A lot more factors are now involved in the decision
  113.   whether two sections have to be coalesced or not:
  114.   - target-specific linking rules are checked first
  115.   - small-code option forces merging of all code sections
  116.   - small-data option forces merging of all data and bss sections
  117.   - relative references between two sections
  118.   - all sections which have base-relative references from other sections
  119.     must be merged (if not denied by -multibase)
  120.   - default linking rules: sections must have the same name and type
  121. o (ados/ehf): target specific linking rules:
  122.   - unnamed sections are never merged, unless the small-code or small-data
  123.     option is given
  124.   - sections named _NOMERGE are absolutely never merged
  125.   - data and bss sections named __MERGED will be merged, warn about
  126.     code sections with this name (but merge them anyway)
  127. o All targets which support it can now take advantage of code-bss and
  128.   data-bss sections. In this case only the initalized section contents
  129.   is stored in the file, although the section header contains the total
  130.   size. The operating system is responsible for clearing the unini-
  131.   tialized part after loading.
  132. o Option -sc forces merging of all code sections in an executable.
  133. o Option -sd forces merging of all data and bss sections in an executable.
  134. o Option -multibase prevents auto-merging of sections, which are accessed
  135.   base-relative. This means the program uses more than one base register
  136.   for accessing small data.
  137.  
  138. - 0.3b (02.05.98)
  139. o Some experimental code for target elf64alpha, but nothing usable now.
  140. o There were still infinite loops, if an object comes without any section.
  141. o (ados/ehf) A dummy code section will be created, if an output file
  142.   has no section at all.
  143.  
  144. - 0.3a (18.04.98)
  145. o Updated and changed some help texts.
  146.  
  147. - 0.3  (17.04.98)
  148. o First version, which reliably links ELF32-PowerPC-BigEndian relocatable
  149.   object files and library archives. The only ELF output format is
  150.   currently a relocatable object, which means only linking with -r works.
  151. o Support for SystemV-style and BSD-style ".a"-archives.
  152. o (elf32ppc) Resolving ADDR16_HA/HI/LO references to a relocatable
  153.   symbol didn't work (2 bytes of the next instructions were overwritten).
  154. o Fixed the print routine for function names, in which an error occured.
  155.   It didn't work, if symbols had a known size. Additionally, it can
  156.   differentiate between 'no type', 'function' and 'object' now.
  157. o Option -R directs vlink to generate short relocs, if the target format
  158.   allows this. It is for example supported by ELF and AmigaDos.
  159.   Restriction: -R is currently ignored for ados/ehf and I'm not sure if
  160.   the implementation is correct for elf32ppc, because "objdump --reloc"
  161.   crashes on encountering ".rel" sections. Don't use this option for now!
  162. o Commented out some options in the help text, which are still not supported.
  163. o Implemented full support for little endian file formats, although
  164.   vlink currently doesn't know about one (maybe ELF64-Alpha-LittleEndian
  165.   will be the first? :).
  166. o (ados/ehf) Absolute local symbols fo